package zlmedia_sdk

type AddStreamProxyReq struct {
	Vhost        string `json:"vhost" url:"vhost"`                                       //添加的流的虚拟主机，例如__defaultVhost__
	App          string `json:"app" url:"app"`                                           //添加的流的应用名，例如live
	Stream       string `json:"stream" url:"stream"`                                     //添加的流的id名，例如test
	Url          string `json:"url" url:"url"`                                           //拉流地址，例如rtmp://live.hkstv.hk.lxdns.com/live/hks2
	RetryCount   int    `json:"retry_count,omitempty" url:"retry_count,omitempty"`       //拉流重试次数，默认为-1无限重试
	RtpType      int    `json:"rtp_type,omitempty" url:"rtp_type,omitempty"`             //rtsp拉流时，拉流方式，0：tcp，1：udp，2：组播	N
	TimeoutSec   int    `json:"timeout_sec,omitempty" url:"timeout_sec,omitempty"`       //拉流超时时间，单位秒，float类型
	EnableHls    int    `json:"enable_hls" url:"enable_hls"`                             //是否转换成hls协议
	EnableMp4    int    `json:"enable_mp4" url:"enable_mp4"`                             //是否允许mp4录制
	EnableRtsp   int    `json:"enable_rtsp,omitempty" url:"enable_rtsp,omitempty"`       //是否转rtsp协议
	EnableRtmp   int    `json:"enable_rtmp,omitempty" url:"enable_rtmp,omitempty"`       //是否转rtmp/flv协议
	EnableTs     int    `json:"enable_ts,omitempty" url:"enable_ts,omitempty"`           //是否转http-ts/ws-ts协议
	EnableFmp4   int    `json:"enable_fmp4,omitempty" url:"enable_fmp4,omitempty"`       //是否转http-fmp4/ws-fmp4协议
	EnableAudio  int    `json:"enable_audio,omitempty" url:"enable_audio,omitempty"`     //	转协议时是否开启音频
	AddMuteAudio int    `json:"add_mute_audio,omitempty" url:"add_mute_audio,omitempty"` //转协议时，无音频是否添加静音aac音频
	Mp4SavePath  string `json:"mp4_save_path,omitempty" url:"mp4_save_path,omitempty"`   //mp4录制文件保存根目录，置空使用默认
	Mp4MaxSecond int    `json:"mp4_max_second,omitempty" url:"mp4_max_second,omitempty"` //	mp4录制切片大小，单位秒
	HlsSavePath  string `json:"hls_save_path,omitempty" url:"hls_save_path,omitempty"`   //hls文件保存保存根目录，置空使用默认
	Auto_close   bool   `json:"auto_close" url:"auto_close"`                             // 没人看就自动关闭流
}

func (receiver AddStreamProxyReq) api() string {
	return "/index/api/addStreamProxy"
}

type AddStreamProxyRes struct {
	ResCommon
	Data struct {
		Key string `json:"key"` // 流的唯一标识
	} `json:"data,omitempty"`
}

func (c *ZLMediaClient) AddStreamProxy(req *AddStreamProxyReq) (res AddStreamProxyRes, err error) {
	err = c.Request(req, &res)
	return
}
